package com.asialjim.wechat.official.message.wiki.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * <h1><em>ASIAL JIM JAVA DOC</em></h1><hr/>
 * <h2>CLASS DESCRIPTION <i>[ NAME: MsgWikiInfo ]</i></h2><strong>
 * 微信公众号消息知识库信息
 * <p> msg wiki info
 * </strong><p><p><em>Copyright &copy; Asial Jim Co., LTD</em><hr/>
 *
 * @author Asial Jim &nbsp;&nbsp; <span>Email:<a href="mailto:asialjim@hotmail.com">asialjim@hotmail.com</a> &nbsp;&nbsp; <a href="asialjim@qq.com">asialjim@qq.com</a></span>
 * @version 1.0.0
 * @since 2021/3/22   &nbsp;&nbsp; JDK 8
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("T_MSG_WIKI_INFO")
@ApiModel("微信消息知识库基础信息")
public class MsgWikiInfo implements Serializable {
    private static final long serialVersionUID = 4745586558136232058L;

    @ApiModelProperty("编号，后台生成")
    @TableId(type = IdType.INPUT)
    private String id;

    /**
     * <h3>FIELD DESCRIPTION</h3>
     * 知识库词条
     */
    @ApiModelProperty("知识库词条")
    private String wiki;

    /**
     * <h3>FIELD DESCRIPTION</h3>
     * 知识库响应消息类型
     * <ul>
     *     <li>text 基础类型</li>
     *     <li>image 基础类型</li>
     *     <li>voice 基础类型</li>
     *     <li>video 基础类型</li>
     *     <li>music 基础类型</li>
     *     <li>news 基础类型</li>
     *     <li>function 应用类型</li>
     * </ul>
     */
    @ApiModelProperty("知识库响应消息类型：文本（text），图片（image），语音（voice），视频（video），音乐（music），图文（news）应用（function）")
    private String type;

    @ApiModelProperty("响应类容，如果type为function，则此处的值为知识库功能系统名称")
    private String content;

    @ApiModelProperty("媒体编号,对应type为媒体类型时有效")
    private String mediaId;

    @ApiModelProperty("title，对应type类型为news时有效")
    private String title;

    @ApiModelProperty("描述内容：如果 type 为function，则此处的值为知识库功能的中文名称")
    private String description;
}
